package com.irdstudio.efp.rule.service.vo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 *
 * 个人征信报告对象
 *
 * @author Cytus_
 * @since 2018年5月6日 下午12:52:45
 * @version 1.0
 *
 */
public class PersonalCreditEntity implements Serializable {


	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	//征信报告中贷款特殊交易标识 true 表示有 false 表示没有
	private boolean LoanSpeTreansFlag;

	private List<CreditCardEntity> cards;

	private List<CreditQueryEntity> querys;

	private List<CreditGuarEntity> guars;

	/** 所有的信用卡最近6个月平均使用额度 */
	private BigDecimal sixAvgUsedAmt;
	/** 24个月内的信用卡累计逾期数 */
	private int cardDebitOverdueAllNum;
	/** 24个月内的信用卡连续逾期数 */
	private int cardContiOverdueNum;
	/** 信用卡授信总额度 */
	private BigDecimal creditCardTotalAmt;
	/** 所有信用卡已用额度 */
	private BigDecimal creditCardUsedTotalAmt;
	/** 汇总担保本金余额 */
	private BigDecimal totalGuarBalAmt;
	/** 未销户贷记卡信息汇总的已用额度 */
	private BigDecimal debitCardUsedAmt;
	/** 是否是纯白户 (人行征信中心查无此人信息) */
	private boolean alienFlag;

	public PersonalCreditEntity() {
		super();
	}


	public PersonalCreditEntity(boolean loanSpeTreansFlag, List<CreditCardEntity> cards, List<CreditQueryEntity> querys,
								List<CreditGuarEntity> guars) {
		super();
		LoanSpeTreansFlag = loanSpeTreansFlag;
		this.cards = cards;
		this.querys = querys;
		this.guars = guars;
	}


	public boolean isLoanSpeTreansFlag() {
		return LoanSpeTreansFlag;
	}


	public void setLoanSpeTreansFlag(boolean loanSpeTreansFlag) {
		LoanSpeTreansFlag = loanSpeTreansFlag;
	}


	public List<CreditCardEntity> getCards() {
		return cards;
	}


	public void setCards(List<CreditCardEntity> cards) {
		this.cards = cards;
	}

	public void addCard(CreditCardEntity card) {
		if (Objects.isNull(this.cards))
			this.cards = new ArrayList<CreditCardEntity>();
		this.cards.add(card);
	}


	public List<CreditQueryEntity> getQuerys() {
		return querys;
	}


	public void setQuerys(List<CreditQueryEntity> querys) {
		this.querys = querys;
	}

	public void addQuery(CreditQueryEntity query) {
		if (Objects.isNull(this.querys))
			this.querys = new ArrayList<CreditQueryEntity>();
		this.querys.add(query);
	}


	public List<CreditGuarEntity> getGuars() {
		return guars;
	}


	public void setGuars(List<CreditGuarEntity> guars) {
		this.guars = guars;
	}

	public void addGuar(CreditGuarEntity guar) {
		if (Objects.isNull(this.guars))
			this.guars = new ArrayList<CreditGuarEntity>();
		this.guars.add(guar);
	}

	public BigDecimal getSixAvgUsedAmt() {
		if (Objects.isNull(sixAvgUsedAmt))
			sixAvgUsedAmt = new BigDecimal(0);
		return sixAvgUsedAmt;
	}

	public void setSixAvgUsedAmt(BigDecimal sixAvgUsedAmt) {
		this.sixAvgUsedAmt = sixAvgUsedAmt;
	}

	public int getCardDebitOverdueAllNum() {
		return cardDebitOverdueAllNum;
	}

	public void setCardDebitOverdueAllNum(int cardDebitOverdueAllNum) {
		this.cardDebitOverdueAllNum = cardDebitOverdueAllNum;
	}

	public int getCardContiOverdueNum() {
		return cardContiOverdueNum;
	}

	public void setCardContiOverdueNum(int cardContiOverdueNum) {
		this.cardContiOverdueNum = cardContiOverdueNum;
	}

	public BigDecimal getCreditCardTotalAmt() {
		return creditCardTotalAmt;
	}

	public void setCreditCardTotalAmt(BigDecimal creditCardTotalAmt) {
		this.creditCardTotalAmt = creditCardTotalAmt;
	}


	public BigDecimal getCreditCardUsedTotalAmt() {
		if ( null == creditCardUsedTotalAmt)
			creditCardUsedTotalAmt = BigDecimal.ZERO;
		return creditCardUsedTotalAmt;
	}


	public void setCreditCardUsedTotalAmt(BigDecimal creditCardUsedTotalAmt) {
		this.creditCardUsedTotalAmt = creditCardUsedTotalAmt;
	}

	public BigDecimal getTotalGuarBalAmt() {
		if ( null == totalGuarBalAmt)
			totalGuarBalAmt = BigDecimal.ZERO;
		return totalGuarBalAmt;
	}

	public void setTotalGuarBalAmt(BigDecimal totalGuarBalAmt) {
		this.totalGuarBalAmt = totalGuarBalAmt;
	}

	public BigDecimal getDebitCardUsedAmt() {
		if (null == debitCardUsedAmt)
			debitCardUsedAmt = BigDecimal.ZERO;
		return debitCardUsedAmt;
	}

	public void setDebitCardUsedAmt(BigDecimal debitCardUsedAmt) {
		this.debitCardUsedAmt = debitCardUsedAmt;
	}

	public boolean isAlienFlag() {
		return alienFlag;
	}

	public void setAlienFlag(boolean alienFlag) {
		this.alienFlag = alienFlag;
	}

}
